package com.draven.mall.dispatch;

import com.draven.mall.entity.Order;
import com.draven.mall.entity.Rider;

import java.util.List;

/**
 * 配送调度算法接口
 */
public interface DispatchAlgorithm {

    /**
     * 为订单分配合适的骑手
     * 
     * @param order 需要分配的订单
     * @param availableRiders 可用的骑手列表
     * @return 分配的骑手，如果没有合适的骑手返回null
     */
    Rider assignRider(Order order, List<Rider> availableRiders);
    
    /**
     * 获取算法类型
     * 
     * @return 算法类型代码
     */
    int getType();
    
    /**
     * 获取算法名称
     * 
     * @return 算法名称
     */
    String getName();
} 